/**
 * 依赖倒置原则
 *    1.高层模块不应该依赖底层模块，二者都应该依赖其抽象
 *    2.抽象不应该依赖细节
 *    3.细节应该依赖抽象
 *    核心思想：要面向接口编程，不要面向实现编程。
 * 作用：
 *   ·依赖倒置原则可以降低类间的耦合度
 *   ·依赖倒置原则可以提高系统的稳定性
 *   ·依赖倒置原则可以减少并行开发引起的风险
 *   ·依赖倒置原则可以提高代码的可读性和可维护性
 *实现方法：
 *  ·每个类尽量提供接口或者抽象类，或者两者都具备。
 *  ·变量的声明类型尽量是接口或者抽象类。
 *  ·任何类都不应该从具体类派生
 *  ·使用继承时尽量遵循里氏替换原则
 *
 */
package com.wlz.principle.dip;